Trouble installing/running Cheat Engine? Check out the known github issue here on how to solve it, or join the cheat engine patreon
Read before download: You must be 18 years or older, or deemed an adult, to install Cheat Engine. Cheat engine is for private and educational purposes only. Before you attach Cheat Engine to a process, please make sure that you are not violating the EULA/TOS of the specific game/application. cheatengine.org does not condone the illegal use of Cheat Engine
February 14 2023:Cheat Engine 7.5 Released for public:
February 8 2023:Cheat Engine 7.5 Released for Windows for Patreons (Mac and public will be here soon):
I'm glad to announce the release of Cheat Engine 7.5 which has some really neat improvements over 7.4My patreon members can get it here
(The public release will be here any day now. Waiting for the advertisers / network owners to accept it)
Please reports bugs and give suggestions to improve Cheat Engine so next version can be even greater!
Changes:from patreon 7.4.3 to public 7.5:
removed the driver requirement for the access memory regions tooladded 1 byte jmp instructions (that will install an exeption handler and place an int3 at the location)added a scanoption so you can skip unpaged memory. (should prevent targets from eating up RAM when scanned)reassemble() now rewrites an instruction using multiple lines when needed make some error messages more descriptiveadded an option to center the highlighted disassembler code to the centeradded an explanation why the driver won't load and a link with info on how to get it to load for nowmemoryrecord hotkeys can now be disabled individuallycodefilter: unwind info now gives less bad resultsadded support for pseudo-ops like cmpss/sd/ps/pdlua: added ceserver commandslua: show a stacktrace on execution errorlua: added convertToUTF8(stringbytetable, regioncode)made loading CT files with signatures possible under wine and protonfrom patreon 7.4.2 to patreon 7.4.3:ceserver: pipe support (mono data dissector)ceserver: added change memory protection capabilityceserver: Available options can now be sent to the CE GUI.netinfo: Replaced the fields view with a treenetwork config: The processlist now has focus after opening a serverlua: added virtualstringtreelua: added invertColorlua: added disassembleBytes(bytestring)autoassembler: now a visual warning is shown when nearby allocation failsautoassembler: the templates now generate 14 byte jmp safe original code blocks as wellpointerscan now has a deviation option for "pointer must end with offset" to help find pointers back after updateultimap: added copy selected results to clipboardfrom patreon 7.4.1 to patreon 7.4.2ipt: Added intel process trace feature provided by microsoft.ceserver: Improve the modulelist fetch speed, more stableceserver: option to disconnect from closed ceserversceserver: the discovery list is now also a history listceserver: implement injection on arm64 as wellceserver: also gets the fpu registers nowassembler x86_64: prefer mov rax,[rip+xxx] over mov rax,[imm64] disasembler x86_64: switch from r#l to r#b because why notmono: the dll now has a versioncheck so that you don't accidentally mix monodatacollector dll'smono: deal with situations where there is no mainformmono/.net: the methodlist is now sorted by namebetter arm disassembler and assemblerbetter arm64 disassembler and assembler the scanregions can be saved/loaded upon close/start ce (seperate option in settings)added an option to skip loading .PDB filesa lot more functions are exposed to newstate threadsadded ranges scans to groupscanfreeze+allow increase/decrease now also looks if the value is signedtrainers: Forms and controls now scale based on DPIchanging record showassigned/showashex now also applies to other selected entriestexttraces now don't save as .cetrace but as .txt nowccode: #include now searches table files for files there as wellccode: the internal symbolhandler can now deal with stdcalled function symbolslua: added ImageIndex property to TTreeNodelua: added OnValuechanged and OnValueChangedByUser callbacks to MemoryRecord objectslua: added getOpenedFileSize()lua: added onHelpEvent callbacklua: added releaseDebugFiles()lua: added enumRegisteredSymbolLists() and enumRegisteredSymbols()lua: added getBitmap method to ImageList objectsfrom public 7.4 to patreon 7.4.1:added .Visible property to treenode entriesadded .VisibleRowCount and .TopItem to listviewsadded arm64 disassembling and assemblingadded lua function "runCommand"added a radiobutton to select if the generated script will use 5 or 14 byte jmps.conditional jumps can now deal 2gb+ destinations (will get rewritten)dotnetinfo: Performance improvementmemory record hotkeys now have a "Only while down" optionUpdated the dbghelp to a more recent version which can better handle nowadys pdb symbolsdifferent memory allocations now get placed within the initial allocation block. Protection is changed afterwardstracer can now step over rep instructionslua stringstream now inherits from memorystream, so you have access to the Memory fieldlua: Added a callback for whenever the structure list is modifiedadded architecture distinguishing to ceserverpressing escape in the hotkey form will now close itadded nested structure supportadded string based custom typesctrl+enter in the disassembler now shows relative addresses from that pointthe diffcount in "find out what accessess/writes" will now stay even when disabling the option to find the number of different addresses an instruction accessesFixes:from patreon 7.4.3 to public 7.5:vehdebug: Fixed a case where a new thread creation or other event would cause another event that would trigger at exactly the same time to get the exception ignored and just continuedmonodatacollector: fixed invoke methoddotnetdatacollector: Fixed issue of loading a wrong version of dbgshim.dllfixed disassembling cvtdq2pdfrom patreon 7.4.2 to patreon 7.4.3:ceserver: Fixed extension loading in some casesceserver: fixed stepping on x86 targetsfixed the name showing as [physical memory] instead of the filename when opening a filefixed a rare error when scanning using specific optionsfixed some documentation in celua at some pointsfixed stackview in "more info" being garbage/access violationfixed tracer search for instructions ending with ]fixed enumExports lua functionfixed issue where vehdebug would crashfixed the assembler from handing [rex+reg*x] as a symbol when debuggingfixed the disassembler backlistfixed termination issue on the memscan objectfrom patreon 7.4.1 to patreon 7.4.2Fixed the tracer search for instructions ending with a ]VEH debug: Fixed the potential of invalid handles being usedKernelmode debug and VEH debug: Fixed setting context on non suspended threadsfixed the lua_pcallk delegate in the c# plugin examplefixed speedhack on wine 7.0fixed high dpi issue of structure dissect on first viewfixed high dpi issue on find what access/writes dialogsrestored the anchor editor (was gone in 7.4.1)fixed .net info instance lookup issuefixed customtypes getting marked as string (bug introduced in 7.4.1)fixed runcommandfixed modalforms from losing their text color internally (bug introduced in 7.4.1)mac: fixed some progressbars not properly updatingfrom public 7.4 to patreon 7.4.1:fixed the all type not finding 4 types when double was deselectedfixed the "all" type when not using doublefixed ccode esp access in 32-bit and "reg"f typesfixed disassembling when using binutils for disassemblyfixed the tablefiles menulist eating memory because they didn't get deleted properlyfixed .net issues that use obfoscated modules and missing metadatafixed paring value starting with a - or +fixed assembling pmovmskbfixed disassembling vgather* vex256 instructions and allow usage of xmm/ymm registers as address (for instructions that allow it. Like this one)fixed the addresslist not giving a proper error when using multiple enable or disable sectionfixed error when using ctrl for speedhack hotkeysfixed the groupscan command parser from assigning wildcard to the wrong comboboxfixed disassembling xchg eax/rax,xxxfixed lua custom type registering as float when using the non lua function methodfixed small memoryscan issue for data at the end of a memoryblockccode doesn't register useless symbols anymoreJanuary 18 2022:Cheat Engine 7.4 Released for Windows and Mac for everyone:
January 2 2022:Cheat Engine 7.4 Released for Windows and Mac for Patreons (public will be here soon):
Happy 2022. To start of this year good here's the official release of Cheat Engine 7.4 My patreon members can get it here (The public release will be here any day now. Waiting for the advertisers / network owners to accept it)
Please reports bugs and give suggestions to improve Cheat Engine.
Additions and changes:
AA templates now generate 14 byte jmp scripts when holding down ctrlFoundcode dialog: Replace now toggles between nop and original. Also prevents duplicatesimproved keyboard control to the hexview in memoryview. You can now hold shift while using the cursors to movelaststate isn't saved in tables anymore (unless ctrl is down)added some space for dbvm functions so it's less likely to click them you can now manually delete saved resultsdebugger attach timeout window will now show the status on some debugger interfacesmodules for 64-bit in 32-bit targets are more clearly marked as suchmono will not try to re-attach after a disconnectlua: fixed copyMemory mode 2from 7.3.1-7.3.2:structure dissect watch for changes now also shows you when something has changed inbetweenadded hints to how the pointer wildcard works the replace button in foundcode dialog now supports multiselectYou can now also change values of groupscan scan results directly in the foundlistlua's openProcess command now won't deactivate all entries when previously no process was selectedyou can now edit instructions with a breakpoint on themadded linux ABI c-compiler dll'sby default mono now releases the .net threadfrom 7.3.2-7.4:added shortcut to add this address to addresslist in hexview (ctrl+numPlus)goto address popup now centers on the memview window, instead of screen centeryou can now change the font of the tracer treeadded isRep to the lua LastDisassemblerData field. And stepover now steps over rep instructionsbreak and trace: Added 'stay within module' optionadded custom alignment option to the hexviewer section of the memoryviewerFixes:fixed loading back highligter config for auto assembler windows.netinfo: fix field searchingfixed disassembler issues/memory corruption when closing a secondary memoryview windowfixed brake and trace killing the debugger when skipping certain modules an failing in figuring out the return addressfixed auto attach not stopping the process flashmono is less likely to disconnect when dissecting an invalid memory addressfixed checkbox and radiobutton not sizing properly in dark modefoundlist: display type override also afffects the saved columnsfoundlist: new scan now alsdo clears the saved resultsprocesslist: Fixed the highlighted color process entries in light modefixed compare to first scan hotkeyfixed handling of broken/empty language foldersfixed network modulesize lookup. (needs a new ceserver build as well)fixed position saving for the foundcode dialogfixed lua errors not giving a proper errormessagefixed {$c} and {$ccode} for the 32-bit CE buildfixed logging of writes to ignore the addresslist freezing(Skyrimfus)fixed dealing with -0.0f in c/ccode blocksfixed memscan on the last block of readable memoryfixed dealing with the proper way of namespace.classname:modulename formatting. (Supports both formats)fixed error when using freeze by thread with a very small intervalfixed {$ccode} and {$luacode} when not giving any parametersfixed some include files erroring out when used from 7.3.1-7.3.2:network ceserver/linux: Fixed wpm corrupting the memoryfixed the elf symbol parserfixed speedhack on linuxil2cpp now has a progressbarfixed handling some newer il2cpp gamesfixed vmin assembling fixed freezing when entering the wrong ceserver detailsfixed deleting groupscan entries from the scanfixed pointerscan not loading results when in a path with non-ascii charactersfixed the standalone trainer maker giving an error about duplicate entriesfrom 7.3.2-7.4:lua: fixed readByte signextending when it shouldn'tfix changeregonbp where it only changed xmm0window position saving of "find what addresses this code accesses" should be more predictablefixed saving of some color preferences in hexview, and added the fadecolorfix AA createThreadAndWait not working in a standalone scriptimproved stability of monofixed break and trace ignore flag causing an stop instead of ignore on 64 bit targetsAugust 26 2021:Cheat Engine 7.3 Released for Windows and Mac for everyone:
August 14 2021:Cheat Engine 7.3 Released for Windows and Mac for Patreons (public will be here soon):
I'm happy to announce the official release of Cheat Engine 7.3 for all my patreon members (The public release will be here any day now. Waiting for the advertisers / network owners to sign of on it) Edit:DoneMy patreon members can get it here
Please report bugs and give feature requests for next version so I can make it even better.
Additions and changes:
Added dark mode support (restart CE when you change the setting)All saved results are now shown in the foundlist (can be turned off)Groupscan now supports pointer wildcards. (only valid if the field is a proper pointer)Hotkeys can be repeated by releasing the key and repressing if the repeat timer hasn't finished yetStructure dissect add to addresslist uses the addressstring instead of number, so symbols will be preservedStructure dissect now has a option to save the previous state of a column and show changes easierMiddle-mouse clicking now copies the value of a structure element to your clipboardAdded {$LUACODE} blocks for inline Lua codingAdded a c-compiler to CEAdded {$C} blocks to the auto assembler. all {$C} blocks get combined into one script before executionAdded {$CCODE} blocks for inline C coding (Check the forum, wiki, CE patreon discord or CE's youtube)Added a C# compiler (compilecs)Added routines to do .NET(and mono) method detouring. .NET info has a new contextmenu where you can create a detour template for the autoassemblerAdded invoke method to the .NET Info window as well[Disable] sections can now reference labels, defines, AOBScan results, and allocs created in the [ENABLE] sectionUserdefined symbollist has a secondary list for CCode symbolsThe change address window now also supports relative offsetsDBVM speed improvementsDBVM has an extra security level, and added dbvm_setKeys to easily change the access codesDBVM has now some basic support for nested VM's (only so you can run them, not yet modify)New debugger interface: DBVM-level debuggerImproved performance of "Find what access/writes this address"Dissect code now lets you specify custom rangesAddresslist value sort now sorts values by alphabet if the record is a string typeThe dropdown list of multiple entries can now be changed at the same timeStandalone register window now shows flags values as wellValue Between scans now autoswap the order if the first value is bigger than the 2ndFixes:fixed some games freezing CE when symbols where accessesLua debug now shows for loop variablesseveral windows now save their position, and won't get corrupted if you don't show them the first time running CEfixed createthreadandwait when using a timeoutfixed disassembling vcvtsi2ssfixed compare to first scan if it's a large block, and made it more efficientceshare: logout fixedfixed assembling movsqfixed ultimap ret filterfixed luapipe never calling OnErrorfixed vehdebug in 64-bit CE zeroing out the FPU registers in 32-bit targetsfixed DBVM find what access/writes sometimes skipping entries on AMDfixed undo not working on memory records when using the single line editorfixed hide children group option when loading a tablefixed some font issues in the break and trace windowfixed pasting the other types in hexadecimal viewfixed the symbolloader fully crashing on unknown pdb symboldatalua:saveTable won't ask to sign the table anymoremessageDialog will work if you omit the buttonlist. (Defaults to mbOK then)added more customizabe buttonregisterSymbol no longer errors out the whole script on failure. It now overwrites existing symbolsand many other things...